Java Collections Framework (List, Set, Map)

Java Technologies - জাভা দিয়ে ডাটা স্ট্রাকচার এবং অ্যালগরিদম (DSA using Java) - জাভার বেসিক এবং জেনেরিক কনসেপ্ট (DSA এর জন্য)
384

Java Collections Framework (JCF) হল Java এর একটি শক্তিশালী লাইব্রেরি যা বিভিন্ন ধরনের ডাটা স্ট্রাকচার এবং তাদের সাথে সম্পর্কিত অ্যালগরিদমগুলোকে সহজে ব্যবহারের জন্য সরবরাহ করে। এই ফ্রেমওয়ার্কে কিছু গুরুত্বপূর্ণ ডাটা স্ট্রাকচার রয়েছে যেমন List, Set, এবং Map, যা আপনি Java তে খুব সহজেই ব্যবহার করতে পারেন।

এখানে, আমরা List, Set, এবং Map এর বেসিক ধারণা, তাদের ব্যবহার এবং পার্থক্য সম্পর্কে আলোচনা করব।


1. Java Collections Framework Overview

Java Collections Framework (JCF) বিভিন্ন ধরনের ডাটা স্ট্রাকচার এবং তাদের সাথে সম্পর্কিত অপারেশনগুলি interface এবং classes এর মাধ্যমে প্রদান করে। এর প্রধান উপাদানগুলো হল:

  • Interfaces: যেমন List, Set, Map, Queue
  • Implementations: যেমন ArrayList, HashSet, HashMap, LinkedList
  • Algorithms: যেমন sorting, searching, shuffling

এই ফ্রেমওয়ার্কের মাধ্যমে আপনি সহজে এবং কার্যকরীভাবে ডাটা স্ট্রাকচার ব্যবহার করতে পারবেন এবং তাদের সাথে সম্পর্কিত বিভিন্ন অপারেশন যেমন adding, removing, searching ইত্যাদি কার্যকরভাবে করতে পারবেন।


2. List Interface

List ইন্টারফেস একটি সিকোয়েন্সিয়াল ডাটা স্ট্রাকচার, যা ডুপ্লিকেট উপাদান এবং নির্দিষ্ট অর্ডারে উপাদানগুলি সংরক্ষণ করে। List এর মধ্যে ইনডেক্সের মাধ্যমে এলিমেন্ট অ্যাক্সেস করা সম্ভব, অর্থাৎ আপনি যে ইনডেক্সে যেকোনো এলিমেন্ট খুঁজে পেতে পারেন। সবচেয়ে পরিচিত List এর ইমপ্লিমেন্টেশন হল ArrayList এবং LinkedList

2.1. List Interface Example

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        // Adding elements to the list
        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");

        // Accessing elements
        System.out.println("Element at index 1: " + list.get(1));

        // Iterating over the list
        for (String item : list) {
            System.out.println(item);
        }

        // Removing an element
        list.remove("Banana");
        System.out.println("After removing Banana: " + list);
    }
}

ব্যাখ্যা:

  • ArrayList: এটি একটি ডাইনামিক অ্যারে যা ইনডেক্সেড অ্যাক্সেস এবং ডুপ্লিকেট উপাদান সমর্থন করে।
  • add(): উপাদান যোগ করার জন্য।
  • get(): ইনডেক্সের মাধ্যমে উপাদান অ্যাক্সেস করার জন্য।
  • remove(): উপাদান মুছে ফেলার জন্য।

3. Set Interface

Set ইন্টারফেস হল একটি অর্ডারহীন ডাটা স্ট্রাকচার যা শুধুমাত্র একক উপাদান রাখে, অর্থাৎ, এতে ডুপ্লিকেট এলিমেন্ট রাখা যায় না। HashSet এবং LinkedHashSet হল জনপ্রিয় Set ইমপ্লেমেন্টেশন যা উপাদানগুলো যোগ এবং মুছতে সক্ষম।

3.1. Set Interface Example

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();

        // Adding elements to the set
        set.add("Apple");
        set.add("Banana");
        set.add("Apple"); // Duplicate element

        // Iterating over the set
        for (String item : set) {
            System.out.println(item);
        }

        // Checking if an element exists
        if (set.contains("Banana")) {
            System.out.println("Banana is in the set.");
        }

        // Removing an element
        set.remove("Apple");
        System.out.println("After removing Apple: " + set);
    }
}

ব্যাখ্যা:

  • HashSet: এটি একটি অর্ডারহীন সেট, যেখানে এলিমেন্ট যোগ করার পর তার স্থান (অর্ডার) নিশ্চয়তা দেওয়া হয় না। কিন্তু এটি Set ইন্টারফেসের নিয়ম অনুসরণ করে, অর্থাৎ duplicate elements গ্রহণ করে না।
  • add(): নতুন উপাদান যোগ করতে ব্যবহৃত হয়।
  • contains(): কোনো উপাদান সেটে আছে কিনা তা যাচাই করতে ব্যবহৃত হয়।
  • remove(): উপাদান মুছে ফেলতে ব্যবহৃত হয়।

4. Map Interface

Map ইন্টারফেস হল একটি কীগুলির সাথে মান সংরক্ষণের জন্য ব্যবহৃত ডাটা স্ট্রাকচার। এটি key-value pairs এ ডাটা সংরক্ষণ করে। Map এর কিছু জনপ্রিয় ইমপ্লেমেন্টেশন হল HashMap, TreeMap, এবং LinkedHashMap

4.1. Map Interface Example

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();

        // Adding key-value pairs to the map
        map.put("Apple", 1);
        map.put("Banana", 2);
        map.put("Cherry", 3);

        // Accessing a value
        System.out.println("Value of Banana: " + map.get("Banana"));

        // Iterating over the map
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }

        // Removing a key-value pair
        map.remove("Banana");
        System.out.println("After removing Banana: " + map);
    }
}

ব্যাখ্যা:

  • HashMap: এটি Map ইন্টারফেসের একটি সাধারণ ইমপ্লেমেন্টেশন, যেখানে কীগুলির মধ্যে কোনও নির্দিষ্ট অর্ডার থাকে না। কীগুলোর মান অনুসারে ডাটাবেসটি দ্রুত অ্যাক্সেস করা সম্ভব।
  • put(): নতুন কীগুলির সাথে মান যোগ করতে ব্যবহৃত হয়।
  • get(): কোনো কী এর মান অ্যাক্সেস করতে ব্যবহৃত হয়।
  • entrySet(): Map এর মধ্যে থাকা কীগুলির মানসহ entry গুলি পাওয়া যায়।

5. List, Set, Map এর মধ্যে পার্থক্য

FeatureListSetMap
Orderingইনডেক্স অনুসারে উপাদান সংরক্ষণঅর্ডারহীন (বা ইনসার্ট অর্ডার থাকতে পারে)কীগুলির সাথে মান সংরক্ষণ
Duplicatesডুপ্লিকেট উপাদান সমর্থিতডুপ্লিকেট উপাদান নিষিদ্ধকীগুলির মধ্যে ডুপ্লিকেট মান থাকতে পারে না
Accessing Elementsইনডেক্স ব্যবহার করে দ্রুত অ্যাক্সেসইটারেটর ব্যবহার করে উপাদান অ্যাক্সেসকীগুলির মাধ্যমে মান অ্যাক্সেস
Usageতালিকা আকারে ডেটা সংরক্ষণ (যেমন: সিরিজ)ডেটার ইউনিক উপাদান সংরক্ষণকী-মান পেয়ার সম্পর্কিত ডেটা সংরক্ষণ

সারাংশ

Java Collections Framework (JCF) হল এমন একটি শক্তিশালী লাইব্রেরি যা List, Set, এবং Map এর মাধ্যমে ডেটা সংরক্ষণ এবং পরিচালনা করতে সাহায্য করে।

  • List ব্যবহৃত হয় যখন ডেটার অর্ডার বা ইনডেক্স প্রয়োজন হয়।
  • Set ব্যবহৃত হয় যখন ডেটার মধ্যে ইউনিক ভ্যালু প্রয়োজন হয়।
  • Map ব্যবহৃত হয় যখন একটি কী এর সাথে মান সংরক্ষণ করতে হয়।

এই ফ্রেমওয়ার্ক আপনাকে অনেক ডাটা স্ট্রাকচার সহজে ব্যবহারের সুবিধা দেয়, যা বিভিন্ন ধরনের অ্যালগরিদম প্রয়োগ করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...